<!DOCTYPE html>
<html>
<head>
  <title>BRL­CAD Primitive Solids</title>
  <style type="text/css">
  body {
  background-color: #E0D8C8;
  color: #000000;
  }
  a.c2 {font-style: italic}
  a.c1 {font-weight: bold}
  </style>
</head>
<body>
  <h1>BRL­CAD Primitive Solids</h1>
  <hr>
  <dt>
    <a class="c1" name="ARB" id="ARB">ARB</a>
  </dt>
  <dd>The <i>ARB</i> is a planar-faced convex solid with between
  four and eight unique vertices. The specific type of <i>ARB</i>
  is often referred to by adding the number of unique vertices to
  the word <i>ARB</i>. For example, an <i>ARB8</i> is the usual
  solid block, an <i>ARB4</i> is a tetrahedron, and an <i>ARB6</i>
  may be a wedge shape.</dd>
  <hr>
  <dt>
    <a class="c1" name="ARS" id="ARS">arbitrary faceted solid</a>
  </dt>
  <dd>The <i>arbitrary faceted solid</i> (Also referred to as
  <i>ARS</i>) is a planar-faced solid defined by any number of
  curves (more precisely closed polylines). These curves are
  typically planar <i>waterline</i> or <i>station</i> curves, but
  they are not restricted to being planar. Each curve in a
  particular <i>ARS</i> must have the same number of points. The
  first and last curves are normally degenerate, each consisting of
  repetitions of a single point to make up the correct number of
  points for a curve. Faces are built by connecting corresponding
  points on adjacent curves. Since the curves are assumed to be
  closed, the last point on any curve is implicitly connected to
  the first point on the same curve</dd>
  <hr>
  <dt>
    <a class="c1" name="ARBN" id="ARBN">ARBN</a>
  </dt>
  <dd>The <i>ARBN</i> is a planar faced convex solid defined by any
  number of bounding planes.</dd>
  <hr>
  <dt>
    <a class="c1" name="BOT" id="BOT">BOT</a>
  </dt>
  <dd>The <i>BOT</i> solid is a collection of triangular facets. It
  may represent a zero thickness surface, a finite thickness plate,
  or a solid volume bounded by the triangles. The surface normal
  for each triangle may be unoriented, oriented according to the
  right-hand rule, or oriented according to the left-hand
  rule.</dd>
  <hr>
  <dt>
    <a class="c1" name="ELL" id="ELL">ellipsoid</a>
  </dt>
  <dd>The <i>ellipsoid</i> is a solid defined by three mutually
  perpendicular semi­axes. When the axes are of unequal length, an
  ellipsoid is generated. When the axes are all the same length, a
  sphere is generated.</dd>
  <hr>
  <dt>
    <a class="c1" name="EHY" id="EHY">elliptical hyperboloid</a>
  </dt>
  <dd>The <i>elliptical hyperboloid</i> (also referred to as
  <i>EHY</i>) is a solid with an elliptical base the remainder of
  the surface of which is defined by hyperbolas that run from any
  point on the ellipse through a common vertex at a specified
  distance from the ellipse and back to the ellipse at the point
  diametrically opposite the starting point. Further control of the
  surface may be obtained by specifying the distance from the
  hyperbolas to the vertex of the asymptotes.</dd>
  <hr>
  <dt>
    <a class="c1" name="EPA" id="EPA">elliptical paraboloid</a>
  </dt>
  <dd>The <i>elliptical paraboloid</i> (also referred to as
  <i>EPA</i>) is a solid with an elliptical base the remainder of
  the surface of which is defined by parabolas that run from any
  point on the ellipse through a common vertex at a specified
  distance from the ellipse and back to the ellipse at a point
  diametrically opposite the starting point.</dd>
  <hr>
  <dt>
    <a class="c1" name="ETO" id="ETO">elliptical torus</a>
  </dt>
  <dd>The <i>Elliptical Torus</i> (Also referred to as <i>ETO</i>)
  is defined by sweeping an ellipse through a circular path. The
  plane of the ellipse and the plane of the circular path are
  mutually perpendicular.</dd>
  <hr>
  <dt>
    <a class="c1" name="EBM" id="EBM">extruded bitmap</a>
  </dt>
  <dd>The <i>extruded bitmap</i> (also referred to as <i>EBM</i>)
  is a solid based on a greyscale bitmap. The bitmap is an array of
  unsigned char values, see bw(5), and is extruded by some
  distance. The <i>EBM</i> solid requires the dimensions of the
  bitmap file (height and width in bytes), an extrusion length, and
  a transformation matrix to position the <i>EBM</i>. Each byte in
  the bitmap file is treated as the base of a cell that is extruded
  by the specified extrusion length. If the value of the byte is
  non­zero, then that cell is considered solid.</dd>
  <hr>
  <dt>
    <a class="c1" name="HAF" id="HAF">half space</a>
  </dt>
  <dd>A <i>half space</i> is the portion of space on one side of a
  plane. It is represented by its boundary (the plane) and its
  outward-pointing normal vector.</dd>
  <hr>
  <dt>
    <a class="c1" name="HF" id="HF">height field</a>
  </dt>
  <dd>The <i>height field</i> is a solid defined by a series of
  height measurements on a regular grid. In addition to a file of
  height measurements, this solid also requires a location vector,
  width and height direction vectors, and some scale factors.</dd>
  <hr>
  <dt>
    <a class="c1" name="NMG" id="NMG"><i>n</i>­manifold
    geometry</a>
  </dt>(also referred to as <i>NMG</i>)
  <dd>
    The <i>n­manifold geometry</i> solid, sometimes known as a
    <i>non­manifold geometry</i>, is based on the description by
    Kevin Weiler in ``The Radial Edge Structure: A Topological
    Representation for Non­Manifold Geometric Modeling'' from
    <i>Geometric Modeling for CAD Applications</i> (Springer
    Verlag, 1987). A useful reference for the <i>NMG</i> solid is
    <a class="c2" href=
    "http://ftp.arl.army.mil/~mike/papers/90nmg">Combinatorial
    Solid Geometry, Boundary Representations, and Non_Manifold
    Geometry</a>.
  </dd>
  <hr>
  <dt>
    <a class="c1" name="PART" id="PART">particle</a>
  </dt>
  <dd>The <i>particle</i> solid is a lozenge-shaped object defined
  by a vertex, a height vector and radii at both ends. The body of
  the <i>particle</i> is either a cylinder or a truncated cone,
  depending on the values of the radii. Each end of the
  <i>particle</i> is a hemisphere of the specified radius.</dd>
  <hr>
  <dt>
    <a class="c1" name="PIPE" id="PIPE">pipe</a>
  </dt>
  <dd>The <i>pipe</i> solid is defined by a sequence of control
  points, each with values for inner radius, outer radius, and bend
  radius. The actual <i>pipe</i> starts at the first control point
  and ends at the last control point. The intervening control
  points are replaced by circular bends with the specified bend
  radius, so the <i>pipe</i> is not likely to actually pass through
  these points. An inner radius of zero indicates a solid
  <i>pipe</i> or wire.</dd>
  <hr>
  <dt>
    <a class="c1" name="PG" id="PG">polysolid</a>
  </dt>
  <dd>The <i>polysolid</i> is defined by a set of planar polygons.
  Each polygon may have up to 5 unique vertices. The vertices of
  each polygon must be in counter­clockwise order when viewed from
  outside the solid. The set of polygons must completely enclose
  the interior of the <i>polysolid</i>.</dd>
  <hr>
  <dt>
    <a class="c1" name="RHC" id="RHC">right hyperbolic cylinder</a>
  </dt>
  <dd>The <i>right hyperbolic cylinder</i> (also referred to as
  <i>RHC</i>) is a solid built by extruding a truncated hyperbola
  through a height vector.</dd>
  <hr>
  <dt>
    <a class="c1" name="RPC" id="RPC">right parabolic cylinder</a>
  </dt>
  <dd>The <i>right parabolic cylinder</i> (also referred to as
  <i>RPC</i>) is a solid built by extruding a truncated parabola
  through a height vector.</dd>
  <hr>
  <dt>
    <a class="c1" name="SPLINE" id="SPLINE">spline</a>
  </dt>
  <dd>The <i>spline</i> solid is defined by a set of non­uniform
  rational <i>B</i>­spline surfaces (NURBs). There are no trimming
  curves in the <i>spline</i> solid, so each NURB surface must
  exactly adjoin its neighbor so that the interior of the
  <i>spline</i> solid is completely enclosed and no parts of any
  NURB surface are dangling outside the solid.</dd>
  <hr>
  <dt>
    <a class="c1" name="TOR" id="TOR">torus</a>
  </dt>
  <dd>The <i>torus</i> is defined by sweeping one circle through a
  larger circular path. The planes of the circles are mutually
  perpendicular.</dd>
  <hr>
  <dt>
    <a class="c1" name="TGC" id="TGC">truncated general cone</a>
  </dt>(also referred to as <i>TGC</i>)
  <dd>The <i>TGC</i> solid is a truncated cone with elliptical (or
  circular) base and top. The base and top must be parallel, but
  the height vector connecting the center of the base with the
  center of the top does not need to be perpendicular to them.</dd>
  <hr>
  <dt>
    <a class="c1" name="VOL" id="VOL">vol</a>
  </dt>
  <dd>The <i>vol</i> solid is defined by a 3-dimensional array of
  unsigned char values. The solid requires a file of these values,
  the extent of the file (in bytes) in each dimension, the size of
  each cell, and high and low thresholds. Any value in the file
  that is between the thresholds (inclusive) represents a solid
  cell.</dd>
  <hr>
</body>
</html>
